package com.javatop.mapper;

import com.javatop.pojo.entity.Article;
import com.javatop.pojo.entity.CollectLike;
import com.javatop.pojo.entity.Article;
import com.javatop.pojo.entity.CollectLike;
import com.javatop.pojo.entity.User;
import org.apache.ibatis.annotations.*;

import java.util.List;
import com.javatop.pojo.entity.FollowBean;
import com.javatop.pojo.entity.LikeBean;
import lombok.extern.slf4j.Slf4j;
import com.javatop.pojo.entity.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.math.BigInteger;


/**
 * 负责人：霍梓航
 * 功能： 用户数据库映射(mapper)
 */

@Mapper
public interface UserMapper {
    /*
    负责人：
    功能：根据用户id(user.userId)更新用户的信息(username,password,authorName,authorImage,authorSex,authorEmail,phone)
    参数：user
    返回值：void
    */
  //  @Update("")
    void update(User user);

    /*
    * 负责人：
    * 功能：根据用户userId删除用户user表中的记录
    * 参数：userId
    * 返回值：void
    * */
  //  @Delete("")
    void delete(Integer userId);


    /*
    * 负责人:
    * 功能：根据参数status,以及updateCollectLike获取对应的userId和articleId更新collect_like表的内对应的收藏状态
    * 参数：updateCollectLike
    * 返回值:void
    * */
 //   @Update("")
    void update(Integer status, CollectLike collectLike);

    /*
    * 负责人：
    * 功能：根据作者userId查找作者收藏的文章(用户和文章的关系表中status=1为作者收藏的文章信息，为0则是未收藏)
    * 参数：userId
    * 返回值：Article
    * */
  //  @Select("")
    Article selectCollectArticle(Integer userId);


    /**
     * 负责人：霍梓航
     * 功能： 用户数据库映射(mapper)
     */



    /**
     * 负责人：霍梓航
     * 功能： 根据用户id添加关注的作者id
     * 注意尚未添加修改粉丝数的sql
     */
   // @Insert("INSERT INTO blog_follows (authorId, concernId) VALUES (#{authorId}, #{concernId})")
    public void addFollow(FollowBean followBean);

    /**
     * 负责人：霍梓航
     * 功能： 根据用户id删除关注的作者id
     */
   // @Insert("DELETE FROM blog_follows WHERE authorId = #{authorid} AND concernId = #{concernid}")
    public void removeFollow(FollowBean followBean);

    /**
     * 负责人：霍梓航
     * 功能： 根据用户id判断是否已关注作者id
     */
 //   @Select("SELECT EXISTS(SELECT 1 FROM blog_follows WHERE authorId = ? AND concernId = ?)")
    public boolean isFollow(FollowBean followBean);

    /**
     * 负责人：霍梓航
     * 功能： 根据用户id设置点赞
     * 注意尚未添加修改粉丝数的sql
     */
    //@Insert()
    public void addLike(LikeBean likeBean);

    /**
     * 负责人：霍梓航
     * 功能： 根据用户id删除点赞
     */
    //@Insert()
    public void removeFollow(LikeBean likeBean);

    /**
     * 负责人：霍梓航
     * 功能： 根据用户id判断是否已点赞
     */
    //@Select()
    public boolean isLike(LikeBean likeBean);

    //@Delete()
    void removeLike(LikeBean likeBean);



}
